//使用vuex的状态管理 在main.js中注册
// 引入
import Vue from "vue"
import Vuex from "vuex"
//除使vuex的调用
//使用
Vue.use(Vuex)
//创建实例
const store = new Vuex.Store({
	// state数据源
	state: {
		
		userinfo:uni.getStorageSync('USERINFO')||{},
		// 同步持久保存
		historyLists: uni.getStorageSync("_history") ||[]
	},
	//mutation改变数据源中的数据  参数：数据源，需要传入的数据源
	mutations: {
		SET_HISTORY_LIST(state, history) {
			state.historyLists = history
		},
		// 清空历史
		CLEAR_HISTORY(state, history){
			state.historyLists = []
		},
		//获取
		SET_USER_INFO(state,userinfo)	{
			state.userinfo = this.userinfo
		}
	},
	actions: {
		//设置历史记录 commit调用mutation中的方法
		// 这里的history是从客户端传入的
		set_history({
			commit,
			state
		}, history) {
			// 先获取 再push追加
			let list = state.historyLists
			list.unshift(history)
			// 将 data 存储在本地缓存中指定的 key 中，会覆盖掉原来该 key 对应的内容，这是一个同步接口。
			uni.setStorageSync('_history',list)
			commit('SET_HISTORY_LISTS', list)
		},
		clearHistory({commit}){
			uni.setStorageSync('_history',[])
			commit('CLEAR_HISTORY')
		},
		//这里传两个参数 第一个是对象 第二个是state 
		// userinfo实在app.vue传进来的
		set_userinfo({commit},userinfo){
			//持久化存储
			uni.setStorageSync('USERINFO',userinfo)
			commit('SET_USER_INFO',userinfo)
		}
		
	}
})
// 导出
export default store
